package com.example.design.c.chain;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import lombok.Getter;
import lombok.Setter;

import java.util.List;

/**
 * 流程申请请求
 */
@Setter
@Getter
public class FLowRequest {
    /**
     * 记录审批日志
     */
    private List<String> log;
    /**
     * 流程名称
     */
    private String flowName;
    /**
     * 流程信息描述
     */
    private String flowDesc;
    /**
     * 流程发起人
     */
    private String launchName;
    /**
     * 该流程当前审批步骤
     */
    private int sortNum;

    @Override
    public String toString() {
        return "流程名称: " + flowName + '\n' +
                "流程信息描述: " + flowDesc + '\n' +
                "流程发起人: " + launchName + '\n' +
                "当前审批步骤: " + sortNum + '\n' +
                "审批日志: " + log;
    }

    /**
     * 使当前审批节点索引 + 1
     */
    public void addNext() {
        sortNum++;
    }

    /**
     * 记录日志
     *
     * @param logMsg 日志内容
     */
    public void log(String logMsg) {
        if (log == null) {
            log = CollUtil.list(false);
        }
        if (StrUtil.isEmpty(logMsg)) {
            return;
        }
        log.add(logMsg);
    }
}
